package com.lhx.common.core.enums;

/**
 * @Author：李洪祥
 * @Package：com.jing.product.domain.enums
 * @Project：Jing-Cloud
 * @name：ProductEnum
 * @Date：2024/6/4 20:57
 */
public enum ProductEnum {
    // 使用枚举常量来表示不同的促销类型
    ORIGINAL_PRICE(0, "无优惠"),
    PROMOTION_PRICE(1, "优惠促销"),
    MEMBER_PRICE(2, "会员价格"),
    TIERED_PRICE(3, "阶梯价格"),
    FULL_REDUCTION(4, "满减价格");

    // 枚举常量中的字段，存储每个促销类型的编号和描述
    private final Integer code;
    private final String description;

    // 私有构造函数，确保枚举常量只能通过枚举类本身创建
    ProductEnum(Integer code, String description) {
        this.code = code;
        this.description = description;
    }

    // 获取促销类型的编号
    public int getCode() {
        return code;
    }

    // 获取促销类型的描述
    public String getDescription() {
        return description;
    }

    // 提供一个根据编号获取枚举常量的静态方法
    public static ProductEnum fromCode(Integer code) {
        for (ProductEnum type : ProductEnum.values()) {
            if (type.getCode() == code) {
                return type;
            }
        }
        return ORIGINAL_PRICE;
    }
}

